

import java.util.*;
/**
 * 队列操作
 */

/**
 * 队列的特有方法：peek() poll() offer(值) element()
 * 队列继承Collection,其余方法都是Collection的方法：add(值) clear() contains(值)  isEmpty()  iterator() remove(值) size()
 */
public class PracticsQueue {
    public static void main(String[] args) {
        //Queue<String> queue=new LinkedList<>();//方法1--使用LinkedList实现队列
        //Queue<String> queue=new ArrayDeque<>();//方法2--使用ArrayDeque实现队列
        Queue<String> queue=new PriorityQueue<>();//方法3--使用PriorityQueue实现队列

        queue.offer("java");//加元素--方式1
        queue.offer("Python");//加元素
        queue.offer("c");//加元素
        queue.add("go");//加元素---方式2

        //查看队列所有值
        Iterator<String> iterator=queue.iterator();
        while(iterator.hasNext()){
            String value=iterator.next();
            System.out.println(value);
        }

        //查看头部内容但不删除
        System.out.println("原始头部元素："+queue.peek());

        //移除头部元素，打印移除的头部元素
        System.out.println("移除的元素为："+queue.poll());

        //再次查看头部元素-方法1
        System.out.println("当前头部元素："+queue.peek());

        //再次查看头部元素-方法2
        System.out.println("当前的头部元素为："+queue.element());

        //判断队列是否为空
        System.out.println("当前队列是否为空："+queue.isEmpty());

        //删除队列值
        queue.remove((Object)"go");

        //判断队列中是否存在某个值
       Boolean isExist= queue.contains((Object)"Python");
       System.out.println("队列中是否存在python字段"+isExist);

        //计算队列长度
        System.out.println("当前队列长度："+queue.size());

        //清除队列里所有元素
        queue.clear();
        System.out.println("当前队列长度"+queue.size());

    }




}
